package com.construction.api.controller.usual;

import com.construction.api.controller.BaseController;
import com.construction.api.domain.model.result.PageResult;

import java.util.List;

/**
 * @author dybin
 * @Date: 2021-07-04 13:25
 */
public abstract class AbstractController<T, K, E> extends BaseController {

    /**
     * 按主键查询
     *
     * @param
     * @return
     */
    public abstract E get(K id);

    /**
     * 新增
     *
     * @param t
     * @return
     */
    public abstract E insert(T t);

    /**
     * 修改
     *
     * @param k
     * @param t
     * @return
     */
    public abstract E update(K k, T t);

    /**
     * 删除
     *
     * @param
     * @return
     */
    public abstract void delete(K id);

    /**
     * 分页查询
     *
     * @return
     */
    public abstract PageResult<E> queryPageList(int size, int current, T t);

    /**
     * 多条件查询
     *
     * @return
     */
    public abstract List<E> queryList(T t);

}
